package com.wisdytech.linkdcs.equipment.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.wisdytech.linkdcs.equipment.model.Equipment;
import com.wisdytech.linkdcs.equipment.vo.EquipmentDataVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
  *  Mapper 接口
 * </p>
 *
 * @author Yanghu
 * @since 2017-09-16
 */
public interface IEqEquipmentDao extends BaseMapper<Equipment> {
    /**
     * <p>Description: 分页获取设备注册列表</p>
     * @param queryMap 查询条件
     * @return 设备注册信息
     */
   public List<Equipment> selectRegisterPage(Map<String, Object> queryMap);
   /**
    * 通过设备型号表id找到对应设备信息
    * @param emModelId 设备型号表id
    * @return
    */
    //public Equipment selectByEmModelId(String emModelId);
    /**
     * 用过采集终端表id获取对应的设备信息集合
     * @param clientId 采集终端表id
     * @return 设备信息集合
     */
    public List<Equipment> selectByClientId(String clientId);
    /**
     * 查询所有的设备信息
     * @return 设备信息集合
     */
    public List<Equipment> listAllEquipment(@Param("modelId")String modelId);

    
    /**
     * 查询所有的设备信息
     * @return 设备信息集合
     */
    public List<Equipment> listAllEquipmentByModelCode(
    		@Param("modelCode")String modelId);
    

    /**
     * 通过设备编号查询对应的设备信息
     * @param equipCode 设备编号
     * @return 设备信息对象
     */
    public Equipment getEquipmentByEquipCode(String equipCode);
    /**
     * 通过设备编号查询对应的设备对象
     * @param equipCode 设备编号
     * @return 设备对象
     */
    public Equipment selectByEquipCode(String equipCode);
    /**
     * 通过查询设备终端表id获取设备信息
     * @param clientId 设备终端表id
     * @return 设备信息
     */
//    public Equipment selectByClientPkId(String clientId);
    /**
     * 通过设备编码修改设备对应的采集终端id---假删除
     * @param equipCode 设备编码
     */
    public void updateByEquipClientId(String equipCode);
    
    /**
     * 
     * <p>Description: 分页查找设备实时数据</p>
     * @param params 查询参数
     * @return
     */
    public List<EquipmentDataVO> selectEqRealData(Map<String,String> params);
    
    /**
     * 
     * <p>Description: 根据设备id获取设备详细信息 包含</p>
     * @param id
     * @return
     */
    public Equipment selectDetailById(String id);
    /**
     * 通过工序id查询对应的设备信息集合
     * @param operationId 工序id
     * @return 设备信息列表
     */
    public List<Equipment> listAllEquipmentByOperationId(String operationId);
    
    /**
     * 
     * <p>Description: 分页查询设备列表</p>
     * @param params
     * @return
     */
    public List<Equipment> listDetail(Map<String,Object> params);
    /**
     * 
     * <p>Description: 查询设备型号被关联备件的设备信息</p>
     * @param equipName
     * @return
     */
	public List<Equipment> listAllEquipAndPart(@Param("equipName")String equipName);
    /**
     * 
     * <p>Description: 通过modelCode查询所有设备</p>
     * @param modelCode
     * @return
     */
	public List<Equipment> selectListByModelCode(String modelCode);
	
	public Equipment equipCodeChangeByeqCode(@Param("equipCode")String equipCode);
  
    public List<Equipment> searchEquipByType(
    		@Param("search")String search,@Param("type")String type ,@Param("operationId")String operationId);
	
}